home *** CD-ROM | disk | FTP | other *** search
/ Aminet 23 / Aminet 23 (1998)(GTI - Schatztruhe)[!][Feb 1998].iso / Aminet / disk / salv / ffstest.readme < prev    next >
Text File  |  1998-01-05  |  6KB  |  169 lines

  1. Short:    FFS filesystem checker
  2. Author:   mlelstv@serpens.swb.de
  3. Uploader: mlelstv@serpens.swb.de
  4. Type:     disk/salv
  5.  
  6. ffstest is the first stage of a disk repair program. It parses
  7. a OFS/FFS/DCFS filesystem tree and reports inconsistencies. It
  8. does not repair them.
  9.  
  10. Currently it checks
  11.  
  12. - meta-block checksum
  13. - hash table entries
  14. - hash chains
  15. - parent links
  16. - file names
  17. - dircache blocks
  18. - hard link chains
  19. - usage of various 'reserved' fields
  20. - allocation bitmap
  21.  
  22. it doesn't yet check for
  23.  
  24. - OFS data blocks
  25. - consistent hard link types
  26. - dircache contents
  27. - soft link targets
  28.  
  29. usage:
  30.  
  31.     ffstest DISK/A,LIST/S,NOINHIBIT/S
  32.  
  33. DISK      - name of the drive/partition, the partition must be mounted
  34.             but the filesystem handler doesn't need to loaded
  35.             A trailing ':' is discarded from the name.
  36. LIST      - lists every meta-block encountered.
  37. NOINHIBIT - don't send an ACTION_INHIBIT to the filesystem, you can
  38.             access the filesystem while it is checked, but obviously
  39.             you must not modify it.
  40.             Caveat: ACTION_INHIBIT may fail.
  41.  
  42. a small tool lets you also start the disk validator manually
  43.  
  44.     validate DISK/A
  45.  
  46. DISK      - name of the drive/partition, the partition must be mounted
  47.             but the filesystem handler doesn't need to loaded
  48.  
  49.  
  50. diagnostics:
  51.  
  52. "bad checksum for key"
  53.   -  a meta block has a bad checksum, ignored
  54. "need a root block to start"
  55.   -  the calculated root block is not of type ST_ROOT, use something
  56.      like DiskSalv to salvage the disk contents
  57. "ERROR: long name"
  58.   -  the name field in a block has a length > 30 chars      
  59. "ERROR: tablesize = xxxx, hashsize = xxxx"
  60.   -  invalid hash table size field in root block, ignored
  61. "ERROR: invalid dircache chain xxxx=>xxxx"
  62.   -  invalid key to next dir cache block
  63. "ERROR: invalid dircache block type"
  64.   -  dircache block is not of type ST_DIRCACHE
  65. "ERROR: key xxx refers to itself as xxx"
  66.   -  the OWNKEY field of a meta block doesn't contain its block number
  67. "ERROR: key xxx with parent xxx doesn't match previous xxx"
  68.   -  the PARENT field of a meta block doesn't match the parent block
  69. "key xxx linked at bad hash position xxx (!= xxx)"
  70.   -  the hash function for a meta block does not match the position
  71.      in the parents hash table
  72. "INVALID(xxx) type xxx (!= ST_LIST)"
  73.   -  list block is not of type ST_LIST
  74. "ERROR: LIST block xxx for file header xxx has different parent xxx"
  75.   -  the PARENT field in a LIST block doesn't match the parent of the
  76.      file header
  77. "key xxx: unallocated xxx"
  78.   -  the number of allocated blocks for a file doesn't match the size
  79.      in the file header
  80. "INVALID(xxx) type xxx"
  81.   -  meta block not recognized
  82. "Unsorted hash chain xxx => xxx"
  83.   -  found a hash chain that isn't sorted by block number
  84. "key xxx: invalid hash entry xxx = xxx"
  85.   -  invalid entry in hash table
  86. "key xxx: hash entry xxx = xxx already used for key xxx at xxx..xxx"
  87.   -  a hash entry points to a block that is already allocated for
  88.      a different disk object
  89. "ERROR: zero bitmap pointer xxx"
  90.   -  an entry in the table of bitmap block is zero
  91. "bad checksum for bitmap key xxx"
  92.   -  ...
  93. "key xxx: allocation error"
  94.   -  bitmap block xxx doesn't match with computed disk allocations"
  95. "BitMap is not valid"
  96.   -  validator did not complete, the bitmap isn't checked
  97.  
  98. "typeBlock xxx/xxx"
  99.   -  unrecognized block of type/subtype encountered
  100. "xxx: non-zero reserved fields"
  101.   -  meta block contains non-zero data in reserved fields
  102.  
  103. "alloc(llist) failed"
  104.   -  out of memory for storing hard link information
  105. "link chain for target xxx unbalanced"
  106.   -  multiple hard links to this target don't build a single list
  107. "link chain for target xxx not terminated"
  108.   -  the list of hard links for this target isn't terminated with 0
  109. "bad link chain for target xxx: xxx -> xxx != xxx"
  110.   -  multiple hard links to this target don't build a single list
  111. "ST_FILE xxx doesn't point back to link xxx"
  112. "ST_DIR xxx doesn't point back to link xxx"
  113.   -  a file or directory object doesn't point back to the first hard link
  114. "invalid target type xxx for link"
  115.   -  the target of a hard link is neither a file nor a directory
  116.  
  117.  
  118. "openMountedDisk("xxx") failed"
  119.   -  the drive/partition xxx isn't found or the device driver couldn't
  120.      be opened or the environment vector couldn't be found or the filesystem
  121.      couldn't be inhibited
  122. "FATAL: invalid environment vector"
  123.   -  The environment vector was found, but contained invalid data"
  124. "FATAL: unsupported huge disk"
  125.   -  Sorry, no support for the 64bit disk APIs yet. Max disk size
  126.      for standard exec drivers is 4GB.
  127.  
  128. "alloc(Extent) failed"
  129.   -  out of memory for allocating Extent structure, computed disk allocation
  130.      will be erroneous
  131. "overlap key xxx: xxx..xxx"
  132. "   with key xxx: xxx..xxx"
  133.   -  two disk objects claim the same disk blocks (corresponds to validator
  134.      messages 'key already set' or 'key used twice')
  135. "key xxx outside of filesystem"
  136.   -  tried to lookup a block number larger than the disk size (should never
  137.      happen)
  138.  
  139. "allocated free block xxx"
  140.   -  this block is missing in the bitmap
  141. "xxx..xxx: xxxxxxxxxxx"
  142.   -  this block range contains errors in the bitmap,
  143.      either blocks missing or allocated while free,
  144.      the right part is a bitmask, zeros represent errors
  145.  
  146. "ERROR: bounding circle in tree at xxx"
  147.   -  a circular block chain was found, the repeated block isn't
  148.      read again to avoid infinite loops
  149. "ERROR: readDisk failed for key xxx"
  150.   -  the disk driver returned an error reading this block
  151. "ERROR: getBuffer failed for key xxx"
  152.   -  sorry, out of memory for allocating a buffer for this block
  153. "ERROR: alloc(bstack) failed for key xxx"
  154.   -  sorry, out of memory for allocating a stack node
  155.  
  156.  
  157. Michael van Elst
  158.  
  159.  
  160. ============================= Archive contents =============================
  161.  
  162. Original  Packed Ratio    Date     Time    Name
  163. -------- ------- ----- --------- --------  -------------
  164.    16464    8940 45.6% 29-Nov-97 00:53:46  ffstest
  165.     5728    2141 62.6% 30-Nov-97 11:05:00  ffstest.readme
  166.     5276    3077 41.6% 30-Nov-97 11:05:18  validate
  167. -------- ------- ----- --------- --------
  168.    27468   14158 48.4% 01-Dec-97 03:07:04   3 files
  169.